﻿using System;
using ElectronicShoppingMall.Service.Data;

namespace ElectronicShoppingMall.Service.Services.Interface.Client
{
    interface IOrderClientManager
    {
        #region  //前台
        /// <summary>
        /// 创建订单
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        bool CreationOrder(Order order);
        /// <summary>
        /// 取消订单
        /// </summary>
        void CancleOrder(Guid OrderId);
        /// <summary>
        /// 根据订单Id付款
        /// </summary>
        /// <param name="OrderId"></param>
        /// <returns></returns>
        bool PayByOrderId(Guid OrderId);
        /// <summary>
        /// 根据订单Id申请退款
        /// </summary>
        /// <param name="OrderId"></param>
        /// <returns></returns>
        bool ApplyRefundByOrderId(Guid OrderId);
        /// <summary>
        /// 根据订单Id确认订单
        /// </summary>
        /// <param name="OrderId"></param>
        void ConfirmOrderByOrderId(Guid OrderId);
  
        /// <summary>
        /// 根据订单Id申请退货
        /// </summary>
        /// <param name="OrderId"></param>
        /// <returns></returns>
        bool ApplyReturnByOrderId(Guid OrderId);
        /// <summary>
        /// 根据商品Id和客户Id和数量，添加商品
        /// </summary>
        /// <param name="clientId"></param>
        void AddGoodsToShoopingCart(int clientId, int goodsId, int count = 1);
        /// <summary>
        /// 根据商品Id和客户Id从购物车中删除商品
        /// </summary>
        void DeleteGoodsFromShoppingCart(int clientId, int goodsId);
        /// <summary>
        /// 根据商品Id和客户Id和数量修改购车商品数量
        /// </summary>
        /// <param name="clientId"></param>
        /// <param name="goodsId"></param>
        /// <param name="count"></param>
        void ModfiyGoodsCountFormShoppingCart(int clientId, int goodsId, int count = 1);
        #endregion
    }
}
